原本預計是想探討個大家的loader或者是開始下一個mutiple roles,但是昨天wp_query讓我弄的不是很爽,所以做個專門的講解
原本的使用是在一開始對上taxonomy,但是新版(4.5版之後)的使用是在第一個參數直接帶進一個object來做,但是官方網站之中,他很糟糕的就只有details get_terms,昨天當下看到真的超怒,我們來看看他主要能被使用什麼參數吧,從官網一個頁面需要連轉兩層真是不好的感受。
在裡頭的參數物件,是WP_Term_Query組成,而裡頭的參數,而自使用之前,我們得先了解woocommerce的目錄是被儲存在taxonomy之中,所以需要去調動,就是使用taxonomy去對product_cat,然後再來做比對。
get_the_ID來做連結。 
DESC或是遞增ASC
"23 64 54"。 
count的使用很相似而他不只是單純只有這個,因為extends的關係,他也支援transform_query,而在裡頭可以對taxonomy的陣列做關聯,如果你在第一層回傳的有超過一個的話,而下面的圖面是她所提供的欄位來做條件,也可以看下方的程式碼是如何設定從post中,再將所屬目錄66的文章抓回。

$args = array(
    'post_type' => 'post',
    'tax_query' => array(
        array(
            'taxonomy' => 'product_cat',
            'field'    => 'term_id',
            'terms'    => '66',
        ),
    ),
);
$query = new WP_Query( $args );
昨天母親需要靠著get_term回傳的原始物件,再來說unshift,老實說這並不是很靠譜,也不是很好看有違典雅寫法的規則,所以今日試著將整個query重新製作來處理。
不過時間所限沒有製作出一個好的結果,不過寫了一個util來當處理這個問題,我試過了include,parent與childof但仍然無法將他的媽媽與女兒串再一起,我只能使用非常粗暴的拉取法了XD這個方式有個問題是,抓取的方式不確切,但是現在不是想要對funtion做深度確認是否為子目錄,因為我猜測應該還是有辦法在一個option之中抓回所有的子目錄。
    $term 			= get_queried_object();
    $parent_id 		= empty( $term->term_id ) ? 0 : $term->term_id;
    
    $option =  array(
        'taxonomy' => 'product_cat',
        'hide_empty' => false,
        'orderby' => 'term_id'
    );
    $cats = get_categories($option);
    $relationship_list = array($parent_id);
    foreach($cats as $index => $cat){
        if(true === in_array($cat->parent,$relationship_list,true) && false === in_array($cat->term_id,$relationship_list,true)) {
            array_push($relationship_list,$cat->term_id);
        }
    }
    foreach($cats as $index => $cat){
        if(false === in_array($cat->term_id,$relationship_list,true)){
            unset($cats[$index]);
        }
    }
    var_dump($cats);
WP_Term_Query
get_terms
get_categories() only returns categories in use
WP_Tax_Query
List all subcategories from category
WP_QUERY